﻿using System;
using System.ComponentModel.Composition;

namespace PlutoStudio.Configuration
{
    /// <summary>
    /// 
    /// </summary>
    [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
    [MetadataAttribute]
    public sealed class ConfigProviderAttribute : ExportAttribute
    {
        private Type type;
        /// <summary>
        /// 
        /// </summary>
        /// <param name="type"></param>
        public ConfigProviderAttribute(Type type)
            : base(typeof(IConfigurationProvider))
        {
            this.type = type;
        }

        /// <summary>
        /// 
        /// </summary>
        public Type Type
        {
            get
            {
                return type;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        public int Order { get; set; }

    }
}
